'\" te
.\" Copyright (c) 2001, Sun Microsystems, Inc. All Rights Reserved.
.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
.TH NO-INVOLUNTARY-POWER-CYCLES 9P "Mar 22, 2001"
.SH NAME
no-involuntary-power-cycles \- device property to prevent involuntary power
cycles
.SH DESCRIPTION
.sp
.LP
A device that might be damaged by power cycles should export the boolean (zero
length) property \fBno-involuntary-power-cycles\fR to notify the system that
all power cycles for the device must be under the control of the device driver.
.sp
.LP
The presence of this property prevents power from being removed from a device
or any ancestor of the device while the device driver is detached, unless the
device was voluntarily powered off as a result of the device driver calling
\fBpm_lower_power\fR(9F).
.sp
.LP
The presence of \fBno-involuntary-power-cycles\fR also forces attachment of the
device driver during a CPR suspend operation and prevents the suspend from
taking place, unless the device driver returns \fBDDI_SUCCESS\fR when its
\fBdetach\fR(9E) entry point is called with \fBDDI_SUSPEND\fR.
.sp
.LP
The presence of \fBno-involuntary-power-cycles\fR does not prevent the system
from being powered off due to a \fBhalt\fR(8) or \fBuadmin\fR(8) invocation,
except for CPR suspend.
.sp
.LP
This property can be exported by a device that is not power manageable, in
which case power is not removed from the device or from any of its ancestors,
even when the driver for the device and the drivers for its ancestors are
detached.
.SH EXAMPLES
.LP
\fBExample 1 \fRUse of Property in Driver's Configuration File
.sp
.LP
The following is an example of a \fBno-involuntary-power-cycles\fR entry in a
driver's \fB\&.conf\fR file:

.sp
.in +2
.nf
no-involuntary-power-cycles=1;
     ...
.fi
.in -2

.LP
\fBExample 2 \fRUse of Property in \fBattach()\fR Function
.sp
.LP
The following is an example of how the preceding \fB\&.conf\fR file entry would
be implemented in the \fBattach\fR(9E) function of a driver:

.sp
.in +2
.nf
xxattach(dev_info_t *dip, ddi_attach_cmd_t cmd)
  {
   ...
       if (ddi_prop_create(DDI_DEV_T_NONE, dip, DDI_PROP_CANSLEEP,
           "no-involuntary-power-cycles", NULL, 0) != DDI_PROP_SUCCESS)
            goto failed;
   ...
   }
.fi
.in -2

.SH ATTRIBUTES
.sp
.LP
See \fBattributes\fR(7) for descriptions of the following attributes:
.sp

.sp
.TS
box;
c | c
l | l .
ATTRIBUTE TYPE	ATTRIBUTE VALUE
_
Interface stability	Committed
.TE

.SH SEE ALSO
.sp
.LP
.BR pm (4D),
.BR attributes (7),
.BR attach (9E),
.BR detach (9E),
.BR ddi_prop_create (9F)
.sp
.LP
\fIWriting Device Drivers\fR
